package com.heima.schedule.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.schedule.dtos.Task;

/**
 * 延迟任务功能实现的service接口定义
 * 业务为两个： 1。添加任务   2.取出任务
 * @author 10161
 */
public interface TaskService {

    /**
     * 添加延迟任务
     * @param task
     * @return 延迟任务持久化后的在数据库表中的id
     */
    public Long addTask(Task task);


    /**
     * 将延迟任务取出执行、消费
     * @param type
     * @param priority
     * @return
     */
    public Task poll(int type,int priority);


    /**
     * 延迟任务完成后，从数据库和redis中删除延迟任务
     * @param taskId
     * @return 操作结果
     */
    public boolean cancelTask(long taskId);




}
